home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO015A.dsk
/
BBS.2.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
6KB
|
92 lines
10 ONERR GOTO 3800
30 ON PEEK(793) = 7 GOTO 2180: GOTO 3020
310 IF MID$ (M$(Z),80,1) < >"P" THEN G = 1: & RETURN
320 & GOSUB 1100: IF SL > = M2 THEN G = 1: & RETURN
330 IF MID$ (NM$,22,20) = MID$ (M$(Z),56,20) OR MID$ (NM$,22,20) = MID$ (M$(Z),36,20) THEN G = 1: & RETURN
340 G = 0: & RETURN
380 & GOSUB 310: ON G GOTO 410: IF DP = 0 THEN & RETURN
400 & PRINT ,B$(10);Z;" ";B$(20),: & RETURN
410 IF M$(Z) = "" THEN & RETURN
420 IF MID$ (M$(Z),80,1) = "P" THEN & PRINT ,B$(20);
430 IF MID$ (M$(Z),81,1) = "P" THEN & PRINT B$(78);
440 CC$ = ":": & PRINT !,B$(10);Z;" ";B$(11); MID$ (M$(Z),8,2);"/"; MID$ (M$(Z),10,2);"/"; MID$ (M$(Z),6,2);" ";B$(12); MID$ (M$(Z),12,2);CC$; MID$ (M$(Z),14,2)
460 & END R: ON R GOTO 530,1250
470 & PRINT !;B$(13);@ MID$ (M$(Z),16,20),B$(14);@ MID$ (M$(Z),36,20): & END R: ON R GOTO 530,1250: IF NA% = 0 OR SL = >M2 THEN & PRINT !;B$(15);@ MID$ (M$(Z),56,20);" ";B$(16);@ MID$ (M$(Z),77,3)
480 & END R: ON R GOTO 530,1250: IF F < >1 THEN & RETURN
500 & PRINT B$(28);:B$ = "YNXQ" + CHR$(13)
510 & GET Z$: & SGNZ$: & INTB$,Z$,R: ON R GOTO 520,530,550,550,520: GOTO 510
520 MK%(Z) = 1:P = 0
530 & PRINT Z$: & RETURN
550 & PRINT Z$: GOTO 1250
670 FOR I = 0 TO MX:L$(I) = "": NEXT :I$ = "":W$ = "":W% = 0:L = 0: POKE 795,0:F = 0: PRINT FR$: POKE 813,255: & RETURN
710 & AT P,R: IF R = 1 THEN & PRINT ,B$(75),,: GOTO 1250
711 & RETURN
900 PRINT ST$;"FIL.MSG": & RETURN
1100 SL = ASC( MID$ (NM$,80,1)) -64: & RETURN
1220 :
1240 T = T(L):M = M(L):B = B(L):A = VAL( MID$ (NM$,81,1)):MT = MT(L)
1250 IF PEEK(793) = 1 AND L < >3 THEN 4160
1255 & SCALE= HM
1260 IF A = 0 AND MT = 1 THEN PRINT BL$;"M.FIL."; PEEK(865);".";L",A";HM:A = 5
1300 & LIST A,S$(T),S$(M),S$(B),B$(0),T$(L),B$(1),C,S,TY,WH,NM,P:A = VAL( MID$ (NM$,81,1)): IF C = 0 THEN & PRINT ,B$(2),: GOTO 1220
1330 IF S >127 THEN & PRINT ,B$(3),: GOTO 1220
1340 ON TY GOTO 1390,1250,2370,1250,1250
1390 A = 0: GOTO 1250
1480 & FN 5,A:P = PEEK(836): & GOSUB 710: PRINT RN$;"LOG": IF MID$ (NM$,1,1) = "#" THEN & PRINT ,B$(81),,: GOTO 1250
2175 IF W% = 1 THEN L = 3: GOTO 1240
2180 & PRINT ,B$(25),,: & CLEAR
2190 & STR$WD,DF$: & PLOT L$(I): & STOP L$(I),C: ON C GOTO 2200: GOTO 2230
2200 I = I +1:C = 0: IF I < = MX THEN 2190
2210 & PRINT ,B$(42),
2230 IF I < = 1 THEN 2480
2240 I = I -1: ON C GOTO 1240,1240,2840,2520,2480,2630,2700,2560,2410: GOTO 1240
2370 ON WH GOTO 2410,2480,2520,2560,2630,2700,2790,2840
2410 Z = J: & GOSUB 380
2420 FOR X = 1 TO I: & PRINT !;X;">";L$(X): & END R: ON R GOTO 2440,2440
2430 NEXT : GOTO 1250
2440 X = I +1: GOTO 2430
2480 & GOSUB 670: & PRINT ,B$(36),:ED% = 0: GOTO 2950
2520 & GOSUB 670: & PRINT ,B$(38),:I = 1: GOTO 2180
2560 & PRINT ,B$(50);: & STR$2,NB$: & INPUT Z$:Z = VAL(Z$): IF Z$ = "" THEN GOTO 1250
2580 IF Z <1 OR Z >I THEN & PRINT ,B$(49),: GOTO 2560
2590 & POP MX -Z,0,L$(Z):I = I -1: GOTO 1250
2630 & PRINT ,B$(37);: & STR$2,NB$: & INPUT Z$:Z = VAL(Z$): IF Z$ = "" THEN GOTO 1250
2650 IF Z <1 OR Z >I THEN & PRINT ,B$(49),: GOTO 2630
2660 & PRINT B$(51);Z,L$(Z): & STR$WD,DF$: & STEP L$(Z): GOTO 2630
2700 IF I = >MX THEN & PRINT ,B$(42),: GOTO 1250
2710 & PRINT ,B$(53);: & STR$2,NB$: & INPUT Z$:Z = VAL(Z$): IF Z$ = "" THEN GOTO 1250
2730 IF Z <1 OR Z >I THEN & PRINT ,B$(49),: GOTO 2700
2740 & POP (I +1) -Z,1,L$(I +1): & PRINT ,B$(54),: & STR$WD,DF$: & INPUT L$(Z):I = I +1: GOTO 2700
2790 IF I = >MX THEN & PRINT ,B$(42),: GOTO 1250
2800 I = I +1: & CLEAR : & PRINT ,B$(41),: GOTO 2190
2840 IF ED% = 1 THEN 3110
2850 & SAVE = HM: FOR X = 1 TO I: & SAVE L$(X): NEXT : & LENZ:J = MM +1: IF SP% = 1 THEN & PRINT ,B$(79);: & USRX: ON X GOTO 2862,2863
2861 GOTO 2865
2862 & MID$ "P",M$(J),80,1: GOTO 2865
2863 & MID$ "X",M$(J),80,1
2865 & PEEK777,X:X = X +1: & POKE 777,X: & MID$ RIGHT$("00000" + STR$(X),5),M$(J),1,5: & PRINT ,B$(74): IF LP <50 THEN LP = LP +1:Z$ = "0": & MID$ Z$,M$(J),76,1: GOTO 2900
2890 HP = HP +1:Z$ = "1": & MID$ Z$,M$(J),76,1
2900 & GOSUB 3150:MM = J:R = VAL( MID$ (NM$,87,3)):R = R +1:Z$ = RIGHT$("000" + STR$(R),3): & PEEK798,R:R = R +1: & POKE 798,R: & MID$ PP$,M$(J),81,1: IF SP% = 0 THEN & MID$ P1$,M$(J),80,1
2930 & MID$ Z$,NM$,87,3: & STORE NM$: & GOSUB 900: & TAN PEEK(839),PH$: PRINT BS$;PH$;"/PAGE.3": & PRINT ,B$(21),: POKE 813,255
2950 POKE 793,2: PRINT CH$;PH$;"/BBS.1"
3020 I = 1: & EXP = HM
3030 & EXPL$(I): IF I >100 THEN 3060
3040 IF L$(I) = CHR$(0) THEN 3060
3050 I = I +1: GOTO 3030
3060 I = I -1:L = 3:W% = 1:ED% = 1:J = Z:F = 0: GOTO 1240
3110 & SAVE = HM: FOR X = 1 TO I: & SAVE L$(X): NEXT : & LENZ:Z$ = MID$ (M$(J),76,1): & GOSUB 3150: & PRINT ,B$(21),: PRINT CH$;PH$;"/BBS.1"
3150 PRINT BS$;"B.";Z$;"/B."; MID$ (M$(J),1,5);",A";HM;",L";Z: & GOSUB 670:ED% = 0: & RETURN
3800 & ONERR = ER,LI: ONERR GOTO 3800
3810 ON ER = 253 GOTO 1480: IF ER < >255 THEN 4020
3830 & PRINT ,,"Please wait...",,: HOME
3840 PRINT "[Q]UIT THE PROGRAM": PRINT "[U]TILITIES": PRINT "[S]YSTEM UTILITIES": PRINT "[R]ETURN TO PROGRAM": PRINT "[T]OGGLE CLOCK": PRINT "[O]FF HANG-UP": PRINT "COMMAND? ": GET Z$: & SGNZ$: & INT"QRUSTO",Z$,Z: ON Z GOTO 3920,3970,4000,4010,3930,3950: GOTO 3830
3920 END
3930 IF PEEK(813) = 0 THEN POKE 813,255: & PRINT "Clock is on...",,,: GOTO 3840
3940 POKE 813,0: & PRINT "Clock is off..",,,: GOTO 3840
3950 GOTO 1480
3970 & GOTO LI
4000 POKE 793,5:P = PEEK(836): & GOSUB 710: PRINT RN$;"LOG"
4010 P = PEEK(837): & GOSUB 710: PRINT RN$;"SYS.UTIL"
4020 & PRINT ,"Error number ";ER;" in line ";LI,"Recycling to top!":ER = PEEK(847):ER = ER +1: POKE 847,ER: IF ER >5 THEN END
4030 & AT PEEK(836),A: PRINT CHR$(4);"RUN BBS.1"
60000 PRINT CHR$(4);"SAVE BBS.2": END